package com.project.web.admin.service.core;

import com.project.model.core.Area;
import com.project.web.admin.service.common.BaseService;

import java.util.List;

public interface AreaService extends BaseService<Area, Long> {

    /**
     * 获取根节点
     *
     * @return
     */
    List<Area> getRoots();

    /**
     * 根据父节点ID查询所有的子节点
     *
     * @param parentId
     * @return
     */
    List<Area> findChildrenRootNodes(Long parentId);

    /**
     * 查询所有的根节点
     *
     * @return
     */
    List<Area> findOnlyRoots();

    /**
     * 保存区域实体中动态生成的属性数据
     *
     * @param entity
     * @return
     */
    @Override
    Area save(Area entity);

    /**
     * 更新Area以及子节点
     *
     * @param entity
     * @return
     */
    void updateNodes(Area entity);

    /**
     * 根据treepath模糊查询所有的子节点
     *
     * @param parentId
     * @return
     */
    List<Area> findChildrenNodes(Long parentId);
}
